﻿//Copyright 2011 - Jonathan Allen

using Granite.Modeling.Internals;
using System;
using System.Diagnostics.Contracts;
using System.Collections.Generic;


namespace Granite.Modeling
{

	/// <summary>
	/// ModelCollection using the default property bag implementation.
	/// </summary>
	public class SimpleModelCollection<T> : ModelCollection<T, PropertyBag>
	{
		/// <summary>
		/// Creates a model collection using the default property bag implementation..
		/// </summary>
		protected SimpleModelCollection()
		{

		}

		/// <summary>
		/// Creates a model collection using the default property bag implementation..
		/// </summary>
		/// <param name="list">The list from which the elements are copied.</param>
		protected SimpleModelCollection(List<T> list)
			: base(list)
		{
			Contract.Requires(list != null);
		}

		/// <summary>
		/// Creates a model collection using the default property bag implementation..
		/// </summary>
		/// <param name="collection">The collection from which the elements are copied.</param>
		protected SimpleModelCollection(IEnumerable<T> collection)
			: base(collection)
		{
			Contract.Requires(collection != null);
		}
		 
	}

}
